Most popular programming languages today use coding standards as a means of capturing and disseminating best practices. Coding standards often include a set of guidelines and/or recommended programming conventions for a given programming language. These standards usually cover file organization, indentation, comments, declarations, statements, naming standards, common patterns, programming practices, programming principles, programming rules of thumb, architectural best practices, etc. These guidelines can provide software structural quality. By writing consistent code, developers can help both themselves and, more importantly, other developers who may work in the same codebase. The coding standards may be formalized into a documented set of rules or an informal set of practices for a development group to follow. Formal coding standards can provide a top-down approach, often recommended and enforced long after program development is underway.
Within Integrated Development Environments (IDEs), modules are sometimes available that can automatically scan developed code and flag code segments that do not meet one or more coding standards. In one existing approach, the use of abstract syntax trees (ASTs) within IDEs has simplified the task of automating standards validation, as IDEs support both built in and third party validators. While such validators can detect and flag departures, there may be very limited ability to automatically correct them.